package com.demo.service;

import java.util.LinkedHashMap;

/**
 * @author 李天航
 * 安排活动的算法
 */
public interface EventManageService {
    /**
     * 安排活动所需的具体算法
     * @param userAccount 用户账号
     * @param weekNum 从2020.1.6(周一) 开始的周数
     * @param algorithmName
     * @return status,msg
     */
    LinkedHashMap<String, Object> eventManage(String userAccount, long weekNum,String algorithmName);

    /**
     * 将每日活动，每周活动，固定活动装入日常表中，等待用户修改
     * @param userAccount 用户账号
     * @param weekNum 周数
     * @return status,msg
     */
    LinkedHashMap<String, Object> fillFixedEvents(String userAccount,long weekNum);

    /**
     * 将任务装入固定时间表中
     * @param userAccount 用户账号
     * @param weekNum 周数
     * @param algorithmName
     * @return status,msg
     */
    LinkedHashMap<String, Object> fillTasks(String userAccount,long weekNum,String algorithmName);

    /**
     * 结合固定活动表所得的最大时间间隔
     * @param userAccount 用户账号
     * @param weekNum 周数
     * @return 最大时间间隔
     */
    Long maxTaskTimeFromFixedEvents(String userAccount,long weekNum);

    /**
     * 忽略日常活动(睡觉除外)后所得的最大时间间隔
     * @param userAccount 用户账号
     * @param weekNum 周数
     * @return 最大时间间隔
     */
    Long maxTaskIgnoreDailyActivities(String userAccount,long weekNum);
}
